Dependency injection installers
There are two dedicated installers for the Digital Banking plugin that should implement the following interfaces:
Meniga.InsightsFactory.DigitalBankingPlugin.IBankAdminPluginInstaller
- interface for Bank Admin installerMeniga.InsightsFactory.DigitalBankingPlugin.ITriggeringEnginePluginInstaller
- interface for Triggering Engine installer
The following dependencies are injected into Dependency Injection Container by default:
Meniga.TriggeringEngine.Contracts.External.IDateTimeProvider
Meniga.TriggeringEngine.Contracts.External.UserIdentityExternal
(for Triggering Engine only)ILoggerFactory
Note: API controllers are registered automatically, while repositories have to be registered manually.
Bank Admin registration
Example registration for Bank Admin:
using System.Collections.Generic;
using System.Reflection;
using Meniga.InsightsFactory.BankAdmin.Contracts.External;
using Meniga.InsightsFactory.DigitalBankingExamplePlugin.ExampleRepository;
using Microsoft.Extensions.DependencyInjection;
namespace Meniga.InsightsFactory.DigitalBankingPlugin;
public class BankAdminPluginInstaller : IBankAdminPluginInstaller
{
public string PluginName => "DigitalBankingExamplePlugin";
public string ApiEndpointsPrefix => "digital-banking-plugin";
// this property is optional and is only required if the plugin is to use Menig plugin contracts
// or if repositories or controllers are placed in dependent assemblies
public IEnumerable<Assembly> DependantAssemblies => new[]
{
typeof(Meniga.InsightsFactory.DigitalBankingContracts.Controllers.PluginControllerBase).Assembly
};
public void Configure(IServiceCollection services)
{
services.AddScoped<IExampleRepository, ExampleRepository>();
}
}
Triggering Engine registration
Example registration for Triggering Engine:
using System.Collections.Generic;
using System.Reflection;
using Meniga.InsightsFactory.DigitalBankingExamplePlugin.ExampleRepository;
using Meniga.TriggeringEngine.Contracts.External;
using Microsoft.Extensions.DependencyInjection;
namespace Meniga.InsightsFactory.DigitalBankingPlugin;
public class TriggeringEnginePluginInstaller : ITriggeringEnginePluginInstaller
{
public string PluginName => "DigitalBankingExamplePlugin";
// this property is optional and is only required if the plugin is to use Menig plugin contracts
// or if repositories are placed in dependent assemblies
public IEnumerable<Assembly> DependantAssemblies => new[]
{
typeof(Meniga.InsightsFactory.DigitalBankingContracts.Controllers.PluginControllerBase).Assembly
};
public void Configure(IServiceCollection services)
{
services.AddScoped<IExampleRepository, ExampleRepository>();
}
}